package com.listening.framework.base.repository;

import java.io.Serializable;
import java.util.List;

/**
 * DAO 基础接口
 * 
 * @author Listening
 * 
 * @param <T>
 * @param <ID>
 */
public interface AbstractRepository<T, ID extends Serializable> {

	/**
	 * 保存对象
	 * 
	 * @param t
	 * @return
	 */
	public String insert(T t);

	/**
	 * 删除对象
	 * 
	 * @param id
	 * @return
	 */
	public Integer delete(ID id);

	/**
	 * 修改对象
	 * 
	 * @param t
	 * @return
	 */
	public Integer modify(T t);

	/**
	 * 查询对象
	 * 
	 * @param t
	 * @return
	 */
	public List<T> select(T t);

	/**
	 * 查询记录条数
	 * 
	 * @param t
	 * @return
	 */
	public Integer count(T t);

	/**
	 * 主键查找
	 * 
	 * @param id
	 * @return
	 */
	public T findOne(ID id);
}
